Skip to main content
InSource KnowledgeCenter

TN AppSvr198 How to determine the Application Server object that is reporting a message in the Wonderware SMC log viewer

Description

 

This article from InSource is a quick introduction to the concepts needed to decipher which object in a galaxy corresponds to the one from the SMC log viewer messages.

  • Author: Joseph Hefner
  • Published: 05/25/2016
  • Applies to: Application Server 3.1 or later

Details

 

Sometimes you will get a message similar to the one below in the SMC log viewer and it is not abundantly clear which object is causing the message:

CPrimitiveProxy::GetPropertyValue - Index is 28 on a non-array attribute. ObjectId: 13287  PrimitiveId: 100  AttributeId: 105

 

1)   You will need to start by identifying the mx_platform_id and mx_engine_id for the computer you are getting the message on and the engine the object is running on.  If there is more than one active engine you may need to try each one if you are unsure which engine is hosting the problem object.  Once you have this, execute the query below and substitute mx_platform_id, mx_engine_id, mx_object_id, and mx_attribute_id with the ones from your message.

SELECT [gobject_id] 
,[package_id] 
,[mx_primitive_id] 
,[mx_attribute_id] 
,[attribute_name] 
,[mx_data_type] 
,[is_array] 
,[security_classification] 
,[mx_attribute_category] 
,[lock_type] 
,[mx_value] 
,[owned_by_gobject_id] 
,[original_lock_type] 
,[dynamic_attribute_type] 
,[bitvalues] 
FROM [dbo].[dynamic_attribute] 
where gobject_id in (select gobject_id from instance where mx_platform_id = '???' and mx_engine_id = '???' and mx_object_id = 13287) 
and mx_attribute_id = 105 

The resulting query should give you something similar to the result below.  From this, we can determine the object in question has a gobject_id of "6751"

 

2) The next step is to query the gobject table for this gobject_id to determine which object is reporting the problem:

 

select tag_name
from dbo.gobject
where gobject_id = 6751

 

Once you have object name, you can now search for it in the IDE to try to resolve the problem.